/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package service;

import java.util.List;
import javax.ejb.Stateful;
import javax.persistence.EntityManager;
import model.Carro;
import model.Cliente;
import model.Filial;

/**
 *
 * @author diofeher
 */
@Stateful
public class CentralOperacoes implements CentralOperacoesRemote {

   private EntityManager em;

    @Override
    public String cadastrarCliente(String cpf, String nome) {
        Cliente temp =(Cliente) em.createQuery("select c from Cliente c where c.cpf ='"+cpf+"'").getSingleResult();
        if(temp==null){
        em.persist(new Cliente(cpf,nome));
        return "Cliente Cadastrado";
        }
        return "CLiente nao cadastrado";
    }

    @Override
    public Cliente acharCliente(String cpf) {
       Cliente temp =null;
       temp =(Cliente) em.createQuery("select c from CLiente c where c.cpf ='"+cpf+"'").getSingleResult();
       return temp==null?null:temp;
    }

    @Override
    public String listarClientes() {
        throw new UnsupportedOperationException("Not supported yet.");
    }


    @Override
    public String listaFiliais() {
     List<Filial> filiais = em.createQuery("select f form Filial f").getResultList();

        String ret="";
        if (filiais!=null){
		for(Filial l:filiais){
			ret+= "Filial : "+l.getId()+"\n";
		}
		return ret;
        }
            else{
            return "Sem filiais";
            }
    }

    @Override
    public boolean existeFilial(int id) {
       Filial temp =null;
       temp = em.find(Filial.class,id);
       return temp==null?false:true;
    }

    @Override
    public String listarCarros(int idLocadora) {
        List<Carro> carros = em.createQuery("select f.carros form Filial f where f.id="+idLocadora).getResultList();

        String retorno = "";
		for(Carro c : carros)
			{retorno+= c.getPlaca() +" - Nome:" + c.getModelo();
			 retorno+= !c.isLocado()?"\n":" (Carro Indisponivel)\n";
			}

	return retorno;
    }

    @Override
    public boolean locarCarro(String cpf, int idLocadora, int idCarro) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public String pagarDivida(String cpf, int idLocadora) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public String verificarDivida(String cpf) {
        throw new UnsupportedOperationException("Not supported yet.");
    }



 
}
